#!/bin/bash
# 用于分表操作，分表后源表会被删除，只会保留分表，需要提前安装mysql命令

HOST=localhost		#数据库IP
USER=root			#数据库用户名
PASSWD=1qaz2wsx		#数据库密码
PORT=3306

postfix="_"  		#表名后缀连接串，如table_0中的_
start=0				#开始序号
end=63				#结束序号
step=1    			#序号增长步长



if [ $# -lt 1 ];then
	echo "Usage: sh $0 table_list_file" 		#命令行必须传入一个文件名作为参数，文件名就是在目标数据库的名字，文件中每一行是需要分表的表名		
	echo "table_list_file is also the target_db_name"
	exit 1
fi

target_db_name=$1
table_list_file=$1

# 遍历表名，执行分表
for table in $(< $table_list_file);
do
	idx=$start
	while [ $idx -le $end ] 
	do
		mysql -u$USER -p$PASSWD -h$HOST -P$PORT -D $target_db_name -e "CREATE TABLE $table$postfix$idx like $table"
		if [ $? -eq 1 ]; then
			exit 99
		fi
		echo "$table$postfix$idx is created"
		idx=$(($idx+$step))
	done
	#删除源表
	mysql -u$USER -p$PASSWD -h$HOST -P$PORT -D $target_db_name -e "DROP TABLE $table"
	echo "$table is deleted"
done
